function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1) + min)
}

/*随机打乱数组*/
export function shuffle(arr) {
  let _arr = arr.slice()
  for (let i = 0; i < _arr.length; i++) {
    let j = getRandomInt(0, i)
    let t = _arr[i]
    _arr[i] = _arr[j]
    _arr[j] = t
  }
  return _arr
}

/*搜索延迟响应*/
export function debounce(func, delay) {
  let timer
  return function (...args) {
    if (timer) {
      clearTimeout(timer)
    }
    timer = setTimeout(() => {
      func.apply(this, args)
    }, delay)
  }
}

/*
* 选出arr1里在arr2不里不存在的对象
* @param arr1 Array
* @param arr2 Array
* @param attr String 通过什么属性比较
* return Arr
* */
export function compareAttr(arr1,arr2,attr) {
  let arr = [];
  arr1.forEach((val) => {
    let item = arr2.find(item => {
      return item[attr] === val[attr];
    });
    if (!item){
      arr.push(val);
    }
  });
  return arr;
}
/* 查找数组有没有当前对象
 * @param obj Object 要查找的对象
 * @param arr Array 被查找的数组
 * @param attr String 靠什么属性比较
 * */
export function ArrIsObject(obj,arr,attr) {
  let p = arr.find( item =>{
    return item[attr] === obj[attr];
  });
  return p;
}

var m = {
  a:1,
  b:2,
  c:3
};

/**
 * clone引用类型
 * */
export function clone(obj) {

  if (typeof obj === 'object' && obj !== null) {
    if (obj instanceof Array){
      let arr = [];
      obj.forEach((item) => {
        if(typeof item === 'object'){
          arr.push(clone(item));
        } else {
          arr.push(item);
        }
      });
      return arr;
    } else {
      let o = {};
      for(let item in obj){
        if(obj.hasOwnProperty(item)){
          if(typeof obj[item] === 'object'){
            o[item] = clone(obj[item]);
          }else {
            o[item] = obj[item];
          }
        }
      }
      return o;
    }
  } else {
    return obj;
  }
}